package ar.edu.unsam.algo2.tp2.partido

import ar.edu.unsam.algo2.tp2.partido.TestInicializar
import org.junit.Test
import org.junit.Assert
import ar.edu.unsam.algo2.tp2.partido.condiciones.Max6Menores
import ar.edu.unsam.algo2.tp2.partido.condiciones.OR
import ar.edu.unsam.algo2.tp2.partido.condiciones.AND
import ar.edu.unsam.algo2.tp2.partido.condiciones.LugarDelPartido
import ar.edu.unsam.algo2.tp2.partido.condiciones.FechaDelPartido
import org.junit.Before

class TestCondiciones extends TestInicializar {

	OR orNo
	OR orSi
	AND andSi
	AND andNo
	Max6Menores menores
	LugarDelPartido sanMartin
	LugarDelPartido sanJusto
	FechaDelPartido fecha

	@Before
	override void init() {
		menores = new Max6Menores
		sanMartin = new LugarDelPartido("San Martin")
		sanJusto = new LugarDelPartido("San Justo")
		fecha = new FechaDelPartido(12, 6, 2013)
		orNo = new OR(sanJusto, menores)
		orSi = new OR(sanMartin, menores)
		andSi = new AND(fecha, sanMartin)
		andNo = new AND(orNo, sanMartin)
		super.init
	}

	@Test
	def noCumpleOR() {
		Assert::assertEquals(false, orNo.cumpleCondicion(partido))
	}

	@Test
	def CumpleOR() {
		Assert::assertEquals(true, orSi.cumpleCondicion(partido))
	}

	@Test
	def noCumpleAnd() {
		Assert::assertEquals(false, andNo.cumpleCondicion(partido))
	}

	@Test
	def CumpleAnd() {
		Assert::assertEquals(true, andSi.cumpleCondicion(partido))
	}
}
